package com.example.jdk8.stream_test;

import java.util.ArrayList;
import java.util.List;

public class StreamsTest {

    public static void main(String[] args) {
        List<String> list = initList();
        // 原列表
        System.out.println("-----原列表-------");
        list.stream().forEach(System.out::println);
        // 把集合转换成流，操作流找出以 a 开头的字符串输出
        System.out.println("-----列表中以a开头的元素-------");
        list.stream().filter(s -> s.startsWith("a")).forEach(System.out::println);
        // 对原列表排序
        System.out.println("-----对原列表排序-------");
        list.stream().sorted(String::compareTo).forEach(System.out::println);
        // 以a 开头的元素排序
        System.out.println("-----对a开头的列表排序-------");
        list.stream().filter(s -> s.startsWith("a")).sorted(String::compareTo).forEach(System.out::println);
    }

    /**
     * 初始化列表
     *
     * @return 列表数据
     */
    private static List<String> initList() {
        List<String> list = new ArrayList<>();
        list.add("ddd2");
        list.add("aaa2");
        list.add("bbb1");
        list.add("aaa1");
        list.add("bbb3");
        list.add("ccc");
        list.add("bbb2");
        list.add("ddd1");
        return list;
    }
}
